import 'dart:ui';

import 'package:smart_ai_dart/extends/function/color_extension.dart';

extension StringExtension on String {
  // 判空
  bool get isNullOrEmpty => isEmpty;
  bool get isNotNullOrEmpty => isNotEmpty;

  // 首字母大写
  String get capitalize =>
      isEmpty ? '' : '${this[0].toUpperCase()}${substring(1)}';

  // 是否是邮箱
  bool get isEmail =>
      RegExp(r'^[a-zA-Z0-9.]+@[a-zA-Z0-9]+\.[a-zA-Z]+').hasMatch(this);

  // 是否是手机号
  bool get isPhoneNumber => RegExp(r'^1[3-9]\d{9}$').hasMatch(this);

  // 是否是URL
  bool get isUrl => RegExp(r'^(http|https):\/\/([\w.]+\/?)\S*').hasMatch(this);

  // 转换为int
  int? toInt() => int.tryParse(this);

  // 转换为double
  double? toDouble() => double.tryParse(this);

  // 移除所有空格
  String get removeAllWhitespace => replaceAll(RegExp(r'\s+'), '');

  // 是否只包含数字
  bool get isNumeric => RegExp(r'^\d+$').hasMatch(this);

  // 转换为Color
  Color? toColor({double opacity = 1.0}) {
    return ColorExtension.fromHex(this, opacity: opacity);
  }

  // Color toColor() {
  //   String hexColor = replaceAll("#", "");
  //   int intValue = int.parse(hexColor, radix: 16);
  //   if (hexColor.length == 6) {
  //     intValue |= 0xFF000000; // 设置完整的不透明度
  //   }
  //   return Color(intValue);
  // }
}
